package com.ada.daytasks.data;

import java.io.Serializable;

import com.activeandroid.Model;
import com.activeandroid.annotation.Column;
import com.activeandroid.annotation.Table;

@Table(name = "tasks", id = "mid")
public class Task extends Model implements Serializable {

	/** Name of Task */
	@Column(name = "title")
	private String title;

	/** Importance of Task (see importance flags) */
	@Column(name = "importance")
	private Integer importance;

	/** Unixtime Task is due, 0 if not set */
	@Column(name = "dueDate")
	private Long dueDate;

	/** Unixtime Task should be hidden until, 0 if not set */
	@Column(name = "hideUntil")
	private Long hideUntil;

	/** Unixtime Task was created */
	@Column(name = "created")
	private Long created;

	/** Unixtime Task was last touched */
	@Column(name = "modified")
	private Long modified;

	/** Unixtime Task was completed. 0 means active */
	@Column(name = "completed")
	private Long completed;

	/** Unixtime Task was deleted. 0 means not deleted */
	@Column(name = "deleted")
	private Long deleted;

	/**
	 * Cached Details Column - built from add-on detail exposers. A null value
	 * means there is no value in the cache and it needs to be refreshed
	 */
	@Column(name = "details")
	private String details;

	/** Date details were last updated */
	@Column(name = "detailsDate")
	private Long detailsDate;

	@Column(name = "flags")
	private Integer flags;

	@Column(name = "is_readonly")
	private Integer is_readonly;

	// --- non-core task metadata
	@Column(name = "notes")
	private String notes;

	@Column(name = "estimatedSeconds")
	private Integer estimatedSeconds;

	@Column(name = "elapsedSeconds")
	private Integer elapsedSeconds;

	@Column(name = "timerStart")
	private Long timerStart;

	@Column(name = "postponeCount")
	private Integer postponeCount;

	/** Flags for when to send reminders */
	@Column(name = "notificationFlags")
	private Integer notificationFlags;

	/** Reminder period, in milliseconds. 0 means disabled */
	@Column(name = "notifications")
	private Long notifications;

	/** Unixtime the last reminder was triggered */
	@Column(name = "lastNotified")
	private Long lastNotified;

	/**
	 * What kind of reminder the last reminder was: private task, social with no
	 * faces, social with faces
	 */
	@Column(name = "socialReminder")
	private String socialReminder;

	/** Unixtime snooze is set (0 -> no snooze) */
	@Column(name = "snoozeTime")
	private Long snoozeTime;

	@Column(name = "recurrence")
	private String recurrence;

	@Column(name = "repeatUntil")
	private Long repeatUntil;

	@Column(name = "calendarUri")
	private String calendarUri;

	@Column(name = "classification")
	private String classification;

	/** Remote id */
	@Column(name = "uuid")
	private String uuid;
	/** Assigned user id */
	@Column(name = "user_id")
	private String user_id;
	// --- for astrid.com

	/** Creator user id */
	@Column(name = "creatorId")
	private String creatorId;

	/** Last Sync date */
	@Column(name = "lastSync")
	private Long lastSync;

	/** Pushed at date */
	@Column(name = "pushed_at")
	private Long pushed_at;

	/** Attachments pushed at date */
	@Column(name = "attachments_pushed_at")
	private Long attachments_pushed_at;

	/** User activities pushed at date */
	@Column(name = "activities_pushed_at")
	private Long activities_pushed_at;

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public Integer getImportance() {
		return importance;
	}

	public void setImportance(Integer importance) {
		this.importance = importance;
	}

	public Long getDueDate() {
		return dueDate;
	}

	public void setDueDate(Long dueDate) {
		this.dueDate = dueDate;
	}

	public Long getHideUntil() {
		return hideUntil;
	}

	public void setHideUntil(Long hideUntil) {
		this.hideUntil = hideUntil;
	}

	public Long getCreated() {
		return created;
	}

	public void setCreated(Long created) {
		this.created = created;
	}

	public Long getModified() {
		return modified;
	}

	public void setModified(Long modified) {
		this.modified = modified;
	}

	public Long getCompleted() {
		return completed;
	}

	public void setCompleted(Long completed) {
		this.completed = completed;
	}

	public Long getDeleted() {
		return deleted;
	}

	public void setDeleted(Long deleted) {
		this.deleted = deleted;
	}

	public String getDetails() {
		return details;
	}

	public void setDetails(String details) {
		this.details = details;
	}

	public Long getDetailsDate() {
		return detailsDate;
	}

	public void setDetailsDate(Long detailsDate) {
		this.detailsDate = detailsDate;
	}

	public Integer getFlags() {
		return flags;
	}

	public void setFlags(Integer flags) {
		this.flags = flags;
	}

	public Integer getIs_readonly() {
		return is_readonly;
	}

	public void setIs_readonly(Integer is_readonly) {
		this.is_readonly = is_readonly;
	}

	public String getNotes() {
		return notes;
	}

	public void setNotes(String notes) {
		this.notes = notes;
	}

	public Integer getEstimatedSeconds() {
		return estimatedSeconds;
	}

	public void setEstimatedSeconds(Integer estimatedSeconds) {
		this.estimatedSeconds = estimatedSeconds;
	}

	public Integer getElapsedSeconds() {
		return elapsedSeconds;
	}

	public void setElapsedSeconds(Integer elapsedSeconds) {
		this.elapsedSeconds = elapsedSeconds;
	}

	public Long getTimerStart() {
		return timerStart;
	}

	public void setTimerStart(Long timerStart) {
		this.timerStart = timerStart;
	}

	public Integer getPostponeCount() {
		return postponeCount;
	}

	public void setPostponeCount(Integer postponeCount) {
		this.postponeCount = postponeCount;
	}

	public Integer getNotificationFlags() {
		return notificationFlags;
	}

	public void setNotificationFlags(Integer notificationFlags) {
		this.notificationFlags = notificationFlags;
	}

	public Long getNotifications() {
		return notifications;
	}

	public void setNotifications(Long notifications) {
		this.notifications = notifications;
	}

	public Long getLastNotified() {
		return lastNotified;
	}

	public void setLastNotified(Long lastNotified) {
		this.lastNotified = lastNotified;
	}

	public String getSocialReminder() {
		return socialReminder;
	}

	public void setSocialReminder(String socialReminder) {
		this.socialReminder = socialReminder;
	}

	public Long getSnoozeTime() {
		return snoozeTime;
	}

	public void setSnoozeTime(Long snoozeTime) {
		this.snoozeTime = snoozeTime;
	}

	public String getRecurrence() {
		return recurrence;
	}

	public void setRecurrence(String recurrence) {
		this.recurrence = recurrence;
	}

	public Long getRepeatUntil() {
		return repeatUntil;
	}

	public void setRepeatUntil(Long repeatUntil) {
		this.repeatUntil = repeatUntil;
	}

	public String getCalendarUri() {
		return calendarUri;
	}

	public void setCalendarUri(String calendarUri) {
		this.calendarUri = calendarUri;
	}

	public String getClassification() {
		return classification;
	}

	public void setClassification(String classification) {
		this.classification = classification;
	}

	public String getUuid() {
		return uuid;
	}

	public void setUuid(String uuid) {
		this.uuid = uuid;
	}

	public String getUser_id() {
		return user_id;
	}

	public void setUser_id(String user_id) {
		this.user_id = user_id;
	}

	public String getCreatorId() {
		return creatorId;
	}

	public void setCreatorId(String creatorId) {
		this.creatorId = creatorId;
	}

	public Long getLastSync() {
		return lastSync;
	}

	public void setLastSync(Long lastSync) {
		this.lastSync = lastSync;
	}

	public Long getPushed_at() {
		return pushed_at;
	}

	public void setPushed_at(Long pushed_at) {
		this.pushed_at = pushed_at;
	}

	public Long getAttachments_pushed_at() {
		return attachments_pushed_at;
	}

	public void setAttachments_pushed_at(Long attachments_pushed_at) {
		this.attachments_pushed_at = attachments_pushed_at;
	}

	public Long getActivities_pushed_at() {
		return activities_pushed_at;
	}

	public void setActivities_pushed_at(Long activities_pushed_at) {
		this.activities_pushed_at = activities_pushed_at;
	}
	
	
	
}
